# 任务详情
# 请根据任务下方提供的用户职位统计信息表，完成以下任务：

# 职位表中每个字段含义如下：

# 字段	说明	
# user_id	用户序号	
# age	用户年龄	
# gender	用户性别	
# occupation	用户职位	
# zip_code	用户邮编	
# 编写一个职位统计函数jobStatistics(),给定表格里的任一职位，统计其以下信息

# 1. 任务一：统计该职位女性用户的百分占比（结果保留两位小数），输出数据类型为str；

# 2. 任务二：统计该职位女性用户百分占比在所有职位女性用户百分占比中的排名（降序），输出数据类型为int。

# 将以上2个结果保存在数组(list)中，按顺序返回。

# 任务要求
# 1. 程序接收一个str类型的变量op，返回一个list类型的变量

# 2. "gender"列中，"F"代表女性，"M"代表男性

# 2. 返回结果格式如下：[任务一: str, 任务二: int]

# 测试用例
# 输入：'artist'

# 输出：[ '46.43%', 4]

# 解释：该职位中女性用户占据该职位所有用户的46.43%，该职位女性占比排名在所有职位女性占比排名中位列第4

# 输入：'student'

# 输出：['30.61%', 10]

# 解释：该职位中女性用户占据该职位所有用户的30.61%，该职位女性占比排名在所有职位女性占比排名中位列第10
# 
# 
# 链接：http://72.itmc.org.cn:80/JS001/static/data/python/3030/67/fj_jobstatics.xlsx
# 
# # 1.运行或提交代码不需要自己编写测试用例，后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内，保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮，可以查看程序设计是否正确，运行次数越多，任务得分越低。
# 4.点击“提交代码”按钮，系统将保存代码，并记录任务数据。
# 5.点击右上方“结束任务”按钮，系统将在后台计算任务得分，任务结束。
# -*- coding: utf-8 -*- 
import pandas as pd


class Solution:
    def jobStatistics(self, op: str) -> list:
        url = 'http://72.itmc.org.cn:80/JS001/static/data/python/3030/67/fj_jobstatics.xlsx'
        chipo = pd.read_excel(url)
        list1 = []
        y = chipo.groupby(by=['occupation']).count()
        for i in y.index:
            x = chipo[chipo['occupation'] == i].groupby(by=chipo['gender']).count()
            if "F" in x.index:
                t = round(x.at['F', 'age'] / x['age'].sum() * 100, 2)
            else:
                t = 0.00
            y.at[i, 'test'] = t
            if i == op:
                list1.append(str("%.2f" % t) + "%")
        y.sort_values(by=['test'], ascending=False, inplace=True)
        m = 0
        for i in y.index:
            m += 1
            if i == op:
                list1.append(m)
                break
        return list1

        pass


print(Solution.jobStatistics(Solution, "artist"))
